Data packets transferred across computer networks can receive different levels of service. This level of service typically corresponds to the attention given to the data packets when transferred through network equipment, such as gateways and routers, and to the status and properties of the data. This can be useful in packet-based networks, such as wireless networks and the Internet, where data packet transmission times are highly variable and dependent upon traffic patterns and available bandwidth. The level of service can be based upon many factors, some of which include network congestion status, data traffic application type (for example, telephony, video, or email), or by agreement between the network provider and the data originator or recipient.
Application types of data packets can be determined by certain network equipment capable of inspecting the contents of data packets. Typically, network equipment does not inspect the contents of data packets, instead only inspecting the header or addresses attached to the data packets. Inspection of the contents of data packets allows for more information to be gleaned on the data packet application type and payload contents, beyond what the headers or addresses can indicate. Decisions based upon these contents can be made in the transfer of data packets through various network elements in a communication system.